package com.scx.service;

import com.scx.dto.BookDTO;
import com.scx.dto.BookPageQueryDTO;
import com.scx.entity.Book;
import com.scx.result.PageResult;
import com.scx.vo.BookVO;

import java.util.List;

public interface BookService {
    /**
     * 新增图书和对应的
     * @param bookDTO
     */
    void saveWithGifts(BookDTO bookDTO);

    /**
     * pageQuery
     * @param BookPageQueryDTO
     * @return
     */
    PageResult pageQuery(BookPageQueryDTO BookPageQueryDTO);

    /**
     * 图书批量删除
     * @param ids
     */
    void deleteBatch(List<Long> ids);

    /**
     * 根据id查询图书和对应的数据
     * @param id
     * @return
     */
    BookVO getByIdWithGifts(Long id);

    /**
     * updateWithGifts
     * @param bookDTO
     */
    void updateWithGifts(BookDTO bookDTO);

    /**
     * 根据分类id查询图书
     * @param categoryId
     * @return
     */
    List<Book> list(Long categoryId);

    /**
     * 图书启售停售
     * @param status
     * @param id
     */
    void startOrStop(Integer status, Long id);

    /**
     * 根据分类id查询图书和
     * @param categoryId
     * @return
     */
    List<BookVO> listWithGifts(Long categoryId);

    /**
     * 获取图书热销Top10
     * @return
     */
    List<Book> top10();

    /**
     * 根据id查询图书
     * @param id
     * @return
     */
    Book queryById(Long id);
}
